package de.distMLP.train;

public interface Configuration {

	public static final String MUTUALLY_EXCLUSIVE_CLASSES = "mutuallyExclusiveClasses";
	public static final String SAVE_MLP = "saveMLP";
	public static final String LOAD_MLP = "loadMLP";
	public static final String MLP_INPUT_PATH = "mlpInputPath";
	public static final String MLP_OUTPUT_PATH = "mlpOutputPath";
	public static final String NB_OUTPUT_UNITS = "nbOutputUnits";
	public static final String NB_INPUT_UNITS = "nbInputUnits";
	public static final String NB_HIDDEN_LAYERS = "nbHiddenLayers";
	public static final String NB_UNITS_HIDDEN_LAYER = "nbUnitsInHiddenLayer";
	public static final String TRAININGS_DATA_INPUT_PATH = "inputPath";
	public static final String NB_ITERATIONS = "nbIterations";
	public static final String SGD = "sgd";
	public static final String MINI_BATCH_GD = "mbgd";
	public static final String R_PROP = "rprop";
	public static final String MOMENTUM = "momentum";
	public static final String REGULARIZATION = "regularization";
	public static final String LEARNINGRATE = "learningRate";
	public static final String SPARSE_AUTOENCODER = "sparse_auto";
	public static final String SAVE_INTERVAL = "save_interval";
	public static final String BATCH_LEARNING = "batchLearning";

	public static final String NG_WIDROW_RANDOMIZER = "useNgWidrowRandomizer";
	public static final String LOROT_BENGIO_RANDOMIZER = "useLorotBengioRandomizer";
	public static final String DENOISE_INPUT = "denoiseInput";

	public static final String USE_BINARY_TREE_COLLECTIVE_COMMUNICATION = "useColCom";

	public static final String SPLIT_INPUT = "splitInput";

	public static final String SEED_VALUE = "seedValue";

	/**
	 * standard value is 0. If value greater 0 training is repeated x-times with
	 * random seed value equal repetition number.
	 */
	public static final String REPEAT_WHOLE_TRAINING = "repeatTraining";

	/**
	 * If true all training examples are cached. Each task caches only his local
	 * data.
	 */
	public static final String USE_CACHE = "useCache";

	public static final String USE_ADAGRAD = "useAdagrad";

	/**
	 * Value for eta.
	 */
	public static final String ADAGRAD_ETA = "adagradEta";

	/**
	 * The random number generator supports using a test seed to get the same
	 * random numbers.
	 */
	public static final String USE_TEST_SEED = "useTestSeed";

	/**
	 * 0 := all available tasks
	 */
	public static final String NUMBER_OF_BSP_TASKS = "numTasks";
	/**
	 * 0 := all available data
	 */
	public static final String BATCH_SIZE = "batchSize";

	/**
	 * Evaluation
	 */
	public static final String DICTIONARY_PATH = "dictionaryPath";

	/**
	 * If true the average error is calculated each iteration. If false the
	 * error is calculated only once, after all iterations.
	 */
	public static final String CALCULATE_ERROR_ON_EACH_ITERATION = "calculateErrorEachIteration";

	/**
	 * NN is trained till this error is reached. Standard value is -1. -1 means
	 * disabled.
	 */
	public static final String TARGET_ERROR = "targetError";

	/**
	 * Test communication with mockup test
	 */
	public static final String MOCKUP_TEST = "mockupTest";

	public static final String TOTAL_NB_TRAININGSDATA = "TOTAL_NB_TRAININGSDATA";
}
